home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / 3d_tools / irit40s.lha / Irit / irit / prisa.irt < prev    next >
Encoding:
Text File  |  1993-12-30  |  6.4 KB  |  193 lines

  1. #
  2. # Some tests for the PRISA (planar layout) code.
  3. #
  4.  
  5. save_res = resolution;
  6. save_mat = view_mat;
  7. view1mat = view_mat * scale(vector(0.5, 0.5, 0.5));
  8. view2mat = scale( vector( 0.1, 0.1, 0.1 ) ) * trans( vector( 0, -0.5, 0 ) );
  9.  
  10. #############################################################################
  11. #
  12. # Layout (prisa) of a sphere - several resolutions/directions.
  13. #
  14. s45 = sin(pi/4);
  15.  
  16. halfcirc = cbspline( 3,
  17.              list( ctlpt( P3, 1.0,  0.0, 0.0,  1.0 ),
  18.                    ctlpt( P3, s45, -s45, 0.0,  s45 ),
  19.                    ctlpt( P3, 1.0, -1.0, 0.0,  0.0 ),
  20.                    ctlpt( P3, s45, -s45, 0.0, -s45 ),
  21.                ctlpt( P3, 1.0,  0.0, 0.0, -1.0 ) ),
  22.              list( 0, 0, 0, 1, 1, 2, 2, 2 ) );
  23. sp = surfrev( halfcirc );
  24. color( sp, yellow );
  25.  
  26. resolution = 20;
  27. view_mat = view1mat;
  28. interact( list( view_mat, sp ) );
  29. resolution = 5;
  30.  
  31. sp_prisa = prisa( sp, 6, -0.6, COL, vector( 0, 0.1, 0.0 ) );
  32. color( sp_prisa, yellow );
  33. resolution = 10;
  34. view_mat = view1mat;
  35. interact( list( view_mat, sp_prisa ) );
  36. resolution = 5;
  37. sp_prisa = prisa( sp, 6, 0.6, COL, vector( 0, 0.1, 0.0 ) );
  38. view_mat = view2mat;
  39. interact( list( view_mat, sp_prisa ) );
  40.  
  41. sp_prisa = prisa( sp, 6, -0.3, COL, vector( 0, 0.1, 0.0 ) );
  42. color( sp_prisa, yellow );
  43. resolution = 10;
  44. view_mat = view1mat;
  45. interact( list( view_mat, sp_prisa ) );
  46. resolution = 5;
  47. sp_prisa = prisa( sp, 6, 0.3, COL, vector( 0, 0.1, 0.0 ) );
  48. view_mat = view2mat;
  49. interact( list( view_mat, sp_prisa ) );
  50.  
  51. sp_prisa = prisa( sp, 6, -0.1, COL, vector( 0, 0.1, 0.0 ) );
  52. color( sp_prisa, yellow );
  53. resolution = 10;
  54. view_mat = view1mat;
  55. interact( list( view_mat, sp_prisa ) );
  56. resolution = 5;
  57. sp_prisa = prisa( sp, 6, 0.1, COL, vector( 0, 0.1, 0.0 ) );
  58. view_mat = view2mat;
  59. interact( list( view_mat, sp_prisa ) );
  60.  
  61. sp_prisa = prisa( sp, 6, -0.3, ROW, vector( 0, 0.1, 0.0 ) );
  62. color( sp_prisa, yellow );
  63. resolution = 10;
  64. view_mat = view1mat;
  65. interact( list( view_mat, sp_prisa ) );
  66. resolution = 5;
  67. sp_prisa = prisa( sp, 6, 0.3, ROW, vector( 0, 0.1, 0.0 ) );
  68. view_mat = view2mat;
  69. interact( list( view_mat, sp_prisa ) );
  70.  
  71. #############################################################################
  72. #
  73. # Layout (prisa) of a wine glass.
  74. #
  75. cross = cbspline( 3,
  76.           list( ctlpt( E3, 0.7, 0.0, 0. ),
  77.             ctlpt( E3, 0.7, 0.0, 0.06 ),
  78.             ctlpt( E3, 0.1, 0.0, 0.1 ),
  79.             ctlpt( E3, 0.1, 0.0, 0.6 ),
  80.             ctlpt( E3, 0.6, 0.0, 0.6 ),
  81.             ctlpt( E3, 0.8, 0.0, 0.8 ),
  82.             ctlpt( E3, 0.8, 0.0, 1.4 ),
  83.             ctlpt( E3, 0.6, 0.0, 1.6 ) ),
  84.           list( KV_OPEN ) );
  85. wglass = surfrev( cross * scale( vector( 1.6, 1.6, 1.6 ) ) );
  86. color( wglass, yellow );
  87.  
  88. resolution = 20;
  89. view_mat = view1mat;
  90. interact( list( view_mat, wglass ) );
  91. wgl_prisa = prisa( wglass, 6, -0.1, COL, vector( 0, 0.25, 0.0 ) );
  92. color( wgl_prisa, yellow );
  93. resolution = 10;
  94. view_mat = view1mat;
  95. interact( list( view_mat, wgl_prisa ) );
  96. resolution = 5;
  97.  
  98. wgl_prisa = prisa( wglass, 6, 0.1, COL, vector( 0, 0.25, 0.0 ) );
  99. view_mat = view2mat;
  100. interact( list( view_mat, wgl_prisa ) );
  101.  
  102. #############################################################################
  103. #
  104. # Layout (prisa) Fuselage of b58 model.
  105. #
  106. c1 = circle( vector( 0.0, 0.0, 0.0 ), 0.01 ) *
  107.      roty( 90 ) *
  108.      trans( vector( -1.0, 0.0, 0.1 ) );
  109. c2 = circle( vector( 0.0, 0.0, 0.0 ), 0.025 ) *
  110.      roty( 90 ) *
  111.      trans( vector( 0.0, 0.0, 0.1 ) );
  112. c3 = circle( vector( 0.0, 0.0, 0.0 ), 0.03 ) *
  113.      roty( 90 ) *
  114.      trans( vector( 0.1, 0.0, 0.1 ) );
  115. c4 = cbspline( 3,
  116.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  117.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  118.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  119.              ctlpt( P3, 0.707, 1.77,  0.283,  0.283 ),
  120.              ctlpt( P3, 1,     2.5,   0.0,    0.4 ),
  121.              ctlpt( P3, 0.707, 1.77, -0.283,  0.283 ),
  122.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  123.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  124.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  125.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  126.      trans( vector( -1.5, 0.0, 0.0 ) );
  127. c5 = cbspline( 3,
  128.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  129.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  130.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  131.              ctlpt( P3, 0.707, 1.77,  0.283,  0.6 ),
  132.              ctlpt( P3, 1,     2.5,   0.0,    0.5 ),
  133.              ctlpt( P3, 0.707, 1.77, -0.283,  0.6 ),
  134.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  135.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  136.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  137.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  138.      trans( vector( 0.0, 0.0, 0.0 ) );
  139.  
  140. fuseFront = sFromCrvs( list( c1, c2, c3, c4, c5 ), 3 );
  141. color( fuseFront, yellow );
  142.  
  143. c1 = cbspline( 3,
  144.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  145.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  146.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  147.              ctlpt( P3, 0.707, 1.77,  0.283,  0.566 ),
  148.              ctlpt( P3, 1,     2.5,   0.0,    0.8 ),
  149.              ctlpt( P3, 0.707, 1.77, -0.283,  0.566 ),
  150.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  151.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  152.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  153.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  154.      trans( vector( 0.0, 0.0, 0.0 ) );
  155. c2 = c1 * scale( vector( 1.05, 1.05, 1.05 ) ) *
  156.           trans( vector( 0.3, 0.0, 0.0 ) );
  157. c3 = c1 * scale( vector( 0.95, 0.95, 0.95 ) ) *
  158.       trans( vector( 1.7, 0.0, -0.02 ) );
  159. c4 = circle( vector( 0.0, 0.0, 0.0 ), 0.35 ) *
  160.      roty( 90 ) *
  161.      trans( vector( 5.0, 0.0, 0.2 ) );
  162. c5 = c4 * trans( vector( 0.2, 0.0, 0.0 ) );
  163. c6 = circle( vector( 0.0, 0.0, 0.0 ), 0.3 ) *
  164.      roty( 90 ) *
  165.      trans( vector( 10.5, 0.0, 0.2 ) );
  166. c7 = circle( vector( 0.0, 0.0, 0.0 ), 0.01 ) *
  167.      roty( 90 ) *
  168.      trans( vector( 11.0, 0.0, 0.25 ) );
  169.  
  170. fuseBack = sFromCrvs( list( c1, c2, c3, c4, c5, c6, c7 ), 3 );
  171. color( fuseBack, yellow );
  172.  
  173. resolution = 10;
  174. view_mat = save_mat * scale(vector(0.6, 0.6, 0.6))
  175.             * trans(vector(0.5, 0.4, 0.0));
  176. interact( list( view_mat, fuseBack, fuseFront ) );
  177. front_prisa = prisa( fuseFront, 6, -0.05, COL, vector( -2.0, 0.2, 0.0 ) );
  178. back_prisa = prisa( fuseBack, 6, -0.05, COL, vector( 2.0, 0.2, 0.0 ) );
  179. color(front_prisa, yellow);
  180. color(back_prisa, yellow);
  181. interact( list( view_mat, front_prisa, back_prisa ) );
  182. resolution = 5;
  183.  
  184. front_prisa = prisa( fuseFront, 6, 0.05, COL, vector( -2.0, 0.2, 0.0 ) );
  185. back_prisa = prisa( fuseBack, 6, 0.05, COL, vector( 2.0, 0.2, 0.0 ) );
  186. view_mat = view2mat;
  187. interact( list( view_mat, front_prisa, back_prisa ) );
  188.  
  189. #############################################################################
  190.  
  191. view_mat = save_mat;
  192. resolution = save_res;
  193.